//! 手写实现简易 vuex 核心方法入口中心

export { Store, createStore } from "./store";
export { useStore, storeKey } from "./injectKey";

//! 核心思想

//! 将用户的配置模块化进行格式化形成树行结构便于取值管理将格式化结果放置 store._modules 中
//! 安装模块将状态按照层级放到 store._modules.root.state 根对象上, 计算属性 getter 存放在 __wrappedGetters 上
//! 而 mutations 同步方法放到 _mutations 中并且每个方法都是用数组收集一起触发，有命名空间则方法前面添加命名空间再加斜杠
//! 异步方法 actions 方法都放到 _actions 中于不同的是每个方法都返回一个 promise
//! 再然后就是将 store._modules.root.state 状态进行响应式处理挂载到 store._state.data 上

//? 核心简单概况: 先格式化树形数据然后安装模块将数据存放对应属性下最后将状态变成响应式

// 怎么检测是否在 mutations  中执行改变仓库状态?  答是内部使用 _withcommit 方法中执行 mutaions 中代码(切片思想)
